home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
patches
/
fser096b
/
fserial.txt
< prev
next >
Wrap
Text File
|
1993-01-08
|
9KB
|
216 lines
************************************************************
* *
* FSERIAL.CPX V1.0 Release Notes *
* *
************************************************************
Roman Hodek
8. Januar 1993
Inhaltsverzeichnis
==================
1) Zweck
2) Bedienung
3) Die FSERIAL-Infos
4) Portabilitt
5) Bugreports
6) History
1) Zweck
========
FSERIAL.CPX ist Bestandteil von FAST_SER von Franz Sirl, das CPX wurde von
Roman Hodek geschrieben. Es dient zur Konfiguration der seriellen Schnittstel-
len unter Bercksichtigung von FAST_SER.
FSERIAL.CPX tut im Prinzip dasselbe wie das bekannte MODEM.CPX von Atari,
nur da es eben merkt, wenn FAST_SER installiert ist und entsprechend handelt.
Darberhinaus kann FSERIAL.CPX ein paar Informationen ber die Schnittstellen
anzeigen und Breaks senden.
2) Bedienung
============
Im Hauptdialog verhlt sich FSERIAL.CPX genauso, wie man es von einem CPX er-
wartet und wie man es von MODEM.CPX gewohnt ist. Es haben nur folgende kleine
Anpassungen stattgefunden:
- Die Anordnung von Datenbits/Paritt/Stopbits wurde umgestellt, so da es
der gewohnten Reihenfolge von z.B. 8N1 entspricht.
- Gibt es keine erweiterten Schnittstellen, so ist das Port-Popup abgeschal-
tet und fest auf Modem 1.
- Ist die aktuelle Schnittstelle Serial 1, so ist kein Rts/Cts-Handshake mg-
lich, da Serial 1 keine solchen Handshake-Leitungen besitzt.
- Es gibt eine Infozeile, die die Version des CPX anzeigt und ob FAST_SER
installiert ist und wenn ja, welche Version.
- Es gibt einen Button, um den Kompatibilittsmodus von FAST_SER ein- bzw.
auszuschalten. Ist dieser Modus an, so knnen zwei der erweiterten Speeds
unter den Rsconf()-Indices 0 und 1 angesprochen werden,[1] die "alten"
Raten verschieben sich dementsprechend um 2 und bei Indices ò 18 findet man
alle mglichen neuen Speeds. Um also z.B. bei Seriell 2 38400 bps ein-
zustellen, whlt man in einem "nichtwissenden" Programm 9600 bps (= Index
1) aus. Ist die Kompatibilitt ausgeschaltet, so sind die neuen Geschwin-
digkeiten nur am Ende zu finden, d.h. sie knnen von Programmen, die nichts
von FAST_SER wissen, nicht angesprochen werden. FSERIAL.CPX kommt mit bei-
den Konventionen zurecht, allerdings kann es beim Umschalten zwischen bei-
den Modi zu einem Verstellen der Baudrate kommen. Man sollte also immer
zuerst den Kompatib.modus ndern, "OK" drcken und danach nocheinmal die
bps-Rate kontrollieren.
Beim Booten werden alle Parameter inklusive der aktuellen seriellen
Schnittstelle auf die in FSERIAL.CPX gespeicherten Werte gesetzt. Bei jedem
Aufruf werden die Parameter erneut abgefragt, da sie ja von einem anderen
Programm verstellt worden sein knnten. Man kann also FSERIAL.CPX auch zum
Abfragen der aktuellen Einstellungen benutzen.
Wird der Dialog mit "OK" verlassen, so werden die Parameter fr _alle_ Ports
gesetzt (nicht nur fr den gerade unter "Port" eingestellten). Ebenso werden
bei "Sichern" die Werte fr alle Ports abgespeichert.
Leider ist aber der Handshakemode nicht per Rsconf() abfragbar. Daher wird
hierfr direkt auf eine undokumentierte Variable der IOREC-Struktur zugegrif-
fen.[2] Bei einem TOS ó 1.02 kann leider die eingestellte bps-Rate nicht ab-
gefragt werden. Dieser Fall wird auch nicht abgefragt, da man dann wahrschein-
lich weder FAST_SER noch FSERIAL.CPX bentigt.
---------------
[1] Seriell 2 und Modem 2 (Mega STE): 0<->57600, 1<->38400, Modem 2 (TT):
0<->38400, 1<->76800
[2] Dabei wird auch ein TOS-Fehler in diesem Zusammenhang umschifft.
3) Die FSERIAL-Infos
====================
Mit dem Button "Info" kommt man zu den FSERIAL-Infos. Dort werden folgende
Daten angezeigt:
Port: Der Port, zu dem die Daten gehren.
Chiptyp: Der Hardwarechip, der diese Schnittstelle steuert. Wenn FAST_SER
installiert ist, bekommt man bei SCC-Ports eine genaue Angabe des Chips,
ansonsten nur "SCC".
Input-Puffer: Die Gre des Puffers fr ankommende Daten.
Output-Puffer: dito fr den Ausgabepuffer
Fehleranzeigen: FAST_SER verwaltet verschiedene Zhler fr Fehler, die bei der
bertragung auftreten knnen. Ist FAST_SER nicht installiert, so bleiben
die folgenden Angaben leer. SCC-bedingt sind manche der Angaben leider
nicht immer 100%-ig verllich (speziell Frame Errors und Lost Chars).
Framing Errors: Zu soviel Zeichen wurden keine bzw. nicht die richtige
Anzahl Stopbits empfangen.
Parity Errors: Anzahl der Zeichen, fr die eine inkorrekte Paritt fest-
gestellt wurde.
Rx Overflows: Anzahl der Zeichen, die wegen vollem Empfangspuffers verlo-
rengingen.
Lost Chars: Anzahl der Zeichen, die verlorengingen, weil der SCC nicht
schnell genug abgefragt wurde.
Die Fehlerzhler laufen normalerweise immer weiter, wenn neue Fehler pas-
sieren. Mit dem Button "Fehler lschen" kann man alle Zhler wieder auf
Null setzen, falls dies ntig sein sollte.
Zustzlich zu den Infos kann man aus diesem Dialog auch noch einen Break (d.h.
eine Dauerlage Nullen ohne Stopbits) senden. Der Break dauert solange, wie man
sich mit gedrckter Maustaste auf dem Button befindet.
4) Portabilitt
===============
Bei der Vielfalt der seriellen Schnittstellen und der TOS-Fehler ist es nicht
einfach, wirklich portabel zu programmieren. Daher gibt es ein paar Einschrn-
kungen:
- FSERIAL.CPX kann nur mit einer TOS-Version ò 1.04 verwendet werden, da man
vorher die eingestellte bps-Rate nicht auslesen kann.
- FSERIAL.CPX verlt sich fters darauf, da es entweder 1, 3 (Mega STE)
oder 4 (TT) serielle Ports gibt, und dies genau bei den genannten Maschi-
nen. Falls es einmal Schwierigkeiten hiermit geben sollte, bitte Bugreport
an mich. Ebenfalls wird angenommen, da bei 3 Ports diese "Modem 1", "Modem
2" und "Serial 2" heien. Bei 4 Ports wird "Serial 1" vor "Serial 2" ein-
geschoben. "Serial 1" hat dabei die besondere Eigenschaft, da es keine
Handshakeleitungen besitzt.
- FSERIAL.CPX erlaubt aktuell bis zu maximal 29 verschiedene bps-Raten an
einer Schnittstelle. Da es FAST_SER prinzipiell erlaubt, eigene Geschwin-
digkeiten zu definieren, knnte dies dazu fhren, da manche Speeds nicht
mehr einstellbar sind. Die Grenze wre jedoch durch einfaches Neucompilie-
ren hochzusetzen.
- Man kann mit Rsconf() nicht den Handshakemodus erfahren. Dieser ist aber in
einer (undokuentierten) IOREC-Variablen gespeichert. Es gibt auch schon
mehrere andere Programme, die sich darauf verlassen, da diese Angabe dort
steht. Leider funkt auch hier wieder ein TOS-Fehler dazwischen: In manchen
Versionen war sich Atari nicht einig, ob der Modus nun im High- oder im
Lowbyte des Words zu speichern ist. Daher wird folgendermaen abgefragt:
Wenn im Lowbyte ein Wert ungleich Null steht, so wird dieser benutzt. Nur
wenn dort eine Null ist, wird der Wert des Highbytes benutzt. Auch hier
gilt: Wenn mein Vorgehen Schwierigkeiten verursacht: Bugreport an mich.
- Auch beim Break-Senden ist Atari mal wieder ein Tippfehler unterlaufen: Bei
den Original SCC-Rsconf's wird das Breakbit im falschen Parameter erwartet.
Um dies zu umschiffen, habe ich folgende Methode gewhlt: Zuerst wird das
Bit an der richtigen Stelle gesetzt und dann im TSR-Rckgabewert nachgese-
hen, ob dort das Bit nun wirklich 1 ist. Wenn ja ist alles ok, sonst wird
das Bit im Argument davor gesetzt.
5) Bugreports
=============
FSERIAL.CPX wurde in einem mehrmonatigen Betatest geprft und scheint in-
zwischen einigermaen fehlerfrei zu sein. Falls Sie doch einen Bug finden oder
einen Verbesserungsvorschlag habe, so schreiben Sie bitte an:
Roman Hodek
Baiersdorfer Str. 7
8521 Mhrendorf
Roman Hodek @ N (Mausnetz)
cdb0@faui60.informatik.uni-erlangen.de
rnhodek@cip.informatik.uni-erlangen.de
am Besten per E-Mail. Fr eine Diagnose ist eine genaue Beschreibung des
Fehlers und seiner Symptome sowie eine genaue Angabe der benutzten Systemkon-
figuration (Hard- und Software) uerst wichtig!
6) History
==========
V0.1á: Erste verffentlichte Version
V0.2á: Watermark-Anzeige im Infodialog ersetzt (da wenig sinnvoll) durch die
Fehlerzhler; Button fr baud_table_flag eingebaut; Fehler beim Window-
Verschieben beseitigt
V0.3á = V1.0: Kleiner Vertipper bei Stopbits/Paritt-Einstellung beseitigt;
ansonsten scheint das CPX inzwischen weitgehend fehlerfrei zu sein.